package br.com.insight.consultoria.apresentacao.curriculo;

import java.util.HashMap;
import java.util.Map;

import br.com.insight.consultoria.apresentacao.messagebean.InsightMB;
import br.com.insight.consultoria.entity.ConheceuInsight;
import br.com.insight.consultoria.entity.EstadoCivil;
import br.com.insight.consultoria.entity.UnidadeFederativa;
import br.com.insight.consultoria.entity.UsuarioPadrao;
import br.com.insight.consultoria.erro.exception.InsightException;
import br.com.insight.consultoria.negocio.fachada.conheceuinsight.FachadaConheceuInsight;
import br.com.insight.consultoria.negocio.fachada.estadocivil.FachadaEstadoCivil;
import br.com.insight.consultoria.negocio.fachada.unidadefederativa.FachadaUnidadeFederativa;
import br.com.insight.consultoria.negocio.fachada.usuariopadrao.FachadaUsuarioPadrao;

public class CurriculoDadosPessoaisMB extends InsightMB{
	
	private UsuarioPadrao usuarioPadrao;
	private FachadaUsuarioPadrao fachadaUsuarioPadrao;
	private FachadaUnidadeFederativa fachadaUnidadeFederativa;
	private FachadaEstadoCivil fachadaEstadoCivil;
	private FachadaConheceuInsight fachadaConheceuInsight;
	private String codConheceuInsight;
	private String codUnidadeFederativa;
	private String codEstadoCivil;
	
	
	public UsuarioPadrao getUsuarioPadrao() throws NumberFormatException, InsightException {
		
		if(usuarioPadrao==null)
			usuarioPadrao=new UsuarioPadrao();
		
		usuarioPadrao.setNome(login().getNome());
		
		return usuarioPadrao;
	}
	
	public String inserir() throws InsightException{
		
		getFachadaUsuarioPadrao().inserir(usuarioPadrao);
		
		return SUCESSO;
	}
	
	public FachadaConheceuInsight getFachadaConheceuInsight() {
		return fachadaConheceuInsight;
	}

	public void setFachadaConheceuInsight(
			FachadaConheceuInsight fachadaConheceuInsight) {
		this.fachadaConheceuInsight = fachadaConheceuInsight;
	}
	
	public String getCodConheceuInsight() {
		return codConheceuInsight;
	}


	public void setCodConheceuInsight(String codConheceuInsight) throws NumberFormatException, InsightException {
		this.codConheceuInsight = codConheceuInsight;
		getUsuarioPadrao().setConheceuInsgiht(getFachadaConheceuInsight().getConheceuInsgiht(new Long(codConheceuInsight)));
	}


	public String getCodEstadoCivil() {
		return codEstadoCivil;
	}
	
	public void setCodEstadoCivil(String codEstadoCivil) throws NumberFormatException, InsightException {
		this.codEstadoCivil = codEstadoCivil;
		usuarioPadrao.setEstadoCivil(getFachadaEstadoCivil().getEstadoCivil(new Long(codEstadoCivil)));
	}

	public String getCodUnidadeFederativa() {
		return codUnidadeFederativa;
	}

	public void setCodUnidadeFederativa(String codUnidadeFederativa)throws NumberFormatException, InsightException {
		this.codUnidadeFederativa = codUnidadeFederativa;
		usuarioPadrao.setUnidadeFederativa(getFachadaUnidadeFederativa().getUnidadeFederativa(new Long(codUnidadeFederativa)));
	}

	public FachadaUsuarioPadrao getFachadaUsuarioPadrao() {
		return fachadaUsuarioPadrao;
	}
	public void setFachadaUsuarioPadrao(FachadaUsuarioPadrao fachadaUsuarioPadrao) {
		this.fachadaUsuarioPadrao = fachadaUsuarioPadrao;
	}
	public FachadaUnidadeFederativa getFachadaUnidadeFederativa() {
		return fachadaUnidadeFederativa;
	}
	public void setFachadaUnidadeFederativa(
			FachadaUnidadeFederativa fachadaUnidadeFederativa) {
		this.fachadaUnidadeFederativa = fachadaUnidadeFederativa;
	}
	public FachadaEstadoCivil getFachadaEstadoCivil() {
		return fachadaEstadoCivil;
	}
	public void setFachadaEstadoCivil(FachadaEstadoCivil fachadaEstadoCivil) {
		this.fachadaEstadoCivil = fachadaEstadoCivil;
	}
	
	public Map<String,Object> getListaEstadoCivil() throws InsightException{
		Map<String,Object> estadoCivil=new HashMap<String, Object>();
		for (EstadoCivil civil : getFachadaEstadoCivil().listaEstadoCivil()) {
			estadoCivil.put(civil.getEstadoCivil(),new Long(civil.getId()));
		}
		return estadoCivil;
	}
	
	public Map<String,Object> getListaUnidadeFederativa() throws InsightException{
		Map<String,Object> uf=new HashMap<String, Object>();
		for (UnidadeFederativa federativa : getFachadaUnidadeFederativa().listaUnidadeFederativa()) {
			uf.put(federativa.getUnidadeFederativa(),new Long(federativa.getId()));
		}
		return uf;
	}
	
	public Map<String, Object> getListaConheceuInsight() throws InsightException{
		Map<String, Object> conheceu=new HashMap<String, Object>();
		for(ConheceuInsight insight:getFachadaConheceuInsight().listaConheceuInsgiht()){
			conheceu.put(insight.getMeioDeComunicacao(), new Long(insight.getId()));
		}
		return conheceu;
	}
	
}